\documentclass{beamer}
%\usepackage[latin1]{inputenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{beamerthemeshadow}
\usepackage{times} %font times
\usepackage[T1]{fontenc} %% Usar la codificaci�n T1
%para que cuando se seleccione un texto las letras acentuadad y las � se copien bien
\usepackage{enumerate}
\usefonttheme{professionalfonts}

\setbeamercolor{note}{fg=black,bg=lightgray} 

\newtheorem{defi}{Definition} 



%\usecolortheme[RGB={205,173,0}]{structure}
%\usetheme[height=7mm]{Berlin}


\mode<presentation>{
%\usetheme{Copenhagen}
\usetheme{Warsaw}
\setbeamercovered{transparent}
}


\title{FFLocation -- Find Friend Location}
\author{{   Andreas Kapourani   }\\ {   Aitor Martin   }\\ {   Juan Javier García   }}
\date{$19^{th}$ of January 2011}


\begin{document} %inicio del documento

%portada
\begin{frame}[plain]{Roskilde University}

\begin{center}
\includegraphics [width =0.25 \textwidth ]{Images/ruclogo} 

\end{center}


\titlepage
\end{frame}
\begin{frame}
\frametitle{Index}
\tableofcontents
\end{frame}

\section{Introduction}
\subsection{What is FFLocation?}


\begin{frame}
\frametitle{What is FFLocation?}

\begin{enumerate}%[<+->]
 \item Social network. Sharing information with your friends like photos, notes, position in {\bf real time}.
 \item Distributed system.
 \item Use many features of SmartPhones such as GPS, Camera, Maps, etc.
 \item Web site to manage the application in a easy way.
\end{enumerate}


\end{frame}

\subsection{The FFLocation System}
  \begin{frame}

  \frametitle{The FFLocation System}

  \begin{block}{Architecture}

    FFLocation has a service-based architecture which embraces a lot of technologies.   

  \end{block}

  \begin{center}
    \includegraphics [width =1 \textwidth ]{Images/architecture}
   
  \end{center}


  \end{frame}


\section{Consuming Web Services}
  \begin{frame}
  \frametitle{Consuming Web Services}

    Web Service Application Programming Interface (Web API)
    \begin{block}{Technologies}
      \begin{enumerate}
        \item Web Services Description Language (\emph{WSDL})
        \item \emph{XML}, \emph{SOAP} and \emph{HTTP} over \emph{TCP/IP}.
        \item Object serialization and deserialization(\emph{SOAPui})
        \item Apache Tomcat 7.0
        \item \emph{kSoap}2 \& \emph{nuSOAP} libraries
      \end{enumerate}
    \end{block}

  \end{frame}


\section{Web Service Application}

\subsection{Database}
  \begin{frame}
  \frametitle{Database}

  \begin{block}{Database tables}
    \begin{itemize}
      \item \emph{User} The account information.
      \item \emph{History} User's location in time.
      \item \emph{FRequest} The friend requests.
      \item \emph{Friend} The relationships between users.(ID1<ID2)
      \item \emph{Note} User's notes in a location.
      \item \emph{Photo} Note's photo data.
    \end{itemize}
    Relational database with the \emph{InnoDB} engine.

    Implementation of the \emph{ffLocationDBIface}.

  \end{block}


\end{frame}

\subsection{Session management}
  \begin{frame}
  \frametitle{Session management}

  \begin{block}{Authentication objects}
    An \emph{Auth} object identifies a single client.
  \end{block}

  \begin{block}{Authentication System}

    \begin{itemize}
      \item \emph{Auths} class holds all the authentication objects.
      \item \emph{Auths} class checks the session expiration time.
    \end{itemize}

    \begin{itemize}
      \item \emph{Auth} objects are stored in a \emph{Map structure}.
    \end{itemize}

  \end{block}

  \end{frame}


\subsection{Reducing network traffic}
  \begin{frame}
    \frametitle{Reducing network traffic}

    \begin{block}{The following methods return pages}
      \begin{itemize}
        \item \emph{User list} request
        \item \emph{User notes} request
      \end{itemize}

    \end{block}

    %\begin{itemize}
      %\item 
      Requesting a \emph{note} with the \emph{photo} attached.
    %\end{itemize}


  \end{frame}

\section{Web Service Interface}

\subsection{Web Site in PHP}
  \begin{frame}
    \frametitle{Web Site in PHP}
    %\begin{block}{}
      \begin{itemize}
        \item The \emph{nuSOAP} library provides the methods defined in the \emph{WSDL} file.
        \item Replied information is mapped in local class objects.
        \item Each user session owns a \emph{ToServer} object.
        \item The \emph{ToServer} class implements a cache system.
      \end{itemize}

      %Problem with nuSOAP and requested arrays with one element.

    %\end{block}
  \end{frame}

\subsection{Android application in Java}
  \begin{frame}
  
    \begin{block}{}
      \begin{itemize}
        \item \emph{kSOAP2} library shortcomings.
        \item \emph{KVMSerializable} interface.
        \item \emph{Base64} enconding.
        \item \emph{Static class} with a \emph{cache} system.
        \item \emph{Envelope} and \emph{Transport}.
      \end{itemize}
      
    \end{block}


  \end{frame}

\section{Conclusions}
  \begin{frame}
  \frametitle{Conclusions}
    
    \begin{block}{Future improvements}
      \begin{itemize}
        \item Upgrade the \emph{code}.
        \item Add functionalities like messages, chat, video, etc.
        \item The documentation.
      \end{itemize}
    \end{block}
    
    
    \begin{block}{What we learnt...}
      \begin{itemize}
        \item Acquired new knowledge about software and protocols.
        \item Improved \emph{teamwork} techniques getting closer to real world projects.
        \item Acquired different \emph{skills} combining different \emph{technologies}.
      \end{itemize}
    \end{block}

  \end{frame}


  \begin{frame} 
    \begin{center} 
     \Huge Questions? 
    \end{center} 
  \end{frame} 
  
\end{document}